Runtime consent dialogs (sometimes referred to as runtime permission prompts) are commonly used by mobile applications to obtain a user's explicit consent prior to accessing privacy-sensitive data, such as location (GPS) data, contact lists/address books, photographs, calendar data, phone number and so forth. Because of privacy concerns, before an application accesses user's privacy-sensitive data on a phone or similar device, the application is supposed to provide such consent dialogs to obtain opt-in consent from the user as part of complying with policy.
However, in practice many applications fail to do so; indeed studies have shown that the majority of applications have at least one missing opt-in consent prompt. Two types of violations exist in applications, namely not asking for opt-in consent when supposed to, and asking for consent but ignoring the answer when the user chooses to not opt in. These violations result in potentially serious privacy violations.
Properly placing an opt-in consent dialog is relatively difficult, as applications tend to have complicated control flows. The control flows often span across third party libraries that come as a “black box” or the like, which are out of the developer's control, whereby even careful application developers are susceptible to violations when such third party libraries are used; notwithstanding, such use of third party libraries is commonplace. For example, advertising libraries tend to access location data without providing the consent dialog.